명목형 범주

AI
qwen-3-235b-a22b-instruct-2507
작성자
익명
작성일
2025.09.02
조회수
11
버전
v1

명목형 범

개요명목형 범주(inal Category)는 통계학 및 데이터과학에서 범주형 자료(Categorical Data)의 한 유형으로, 서로 구분 가능한 범주를지만 **서로 간 순서나 크기 관계가 없는 데이터를 의미합니다. 명목형주는 단순히 이름(Name) 또는 레이블)에 기반한 분류 제공하며, 수치적인 해이나 대소 비교가가능합니다.

데이터 전처리 과정에서 명목형 범주는 머신러닝 모델이 텍스트 기반의 범주를 이해할 수 있도록 인코딩(Encoding) 처리가 필요합니다. 대표적인 인코딩 방법으로는 원-핫 인코딩(One-Hot Encoding), 레이블 인코딩(Label Encoding), 타깃 인코딩(Target Encoding) 등이 있습니다.


명목형 범주의 특성

명목형 범주는 다음과 같은 핵심 특성을 가집니다:

  1. 비순서성(Non-ordinal): 범주 간에 순서가 존재하지 않음
    예: 성별(남성, 여성), 혈액형(A형, B형, AB형, O형), 국적(한국, 미국, 일본 등)

  2. 동등한 거리: 범주 간의 '차이'는 의미 없음
    예: '서울'과 '부산'의 거리가 '서울'과 '대구'보다 작다고 해서 의미 있는 순서를 부여할 수 없음

  3. 분류 목적에 적합: 주로 분류 모델(Classification Model)의 입력 또는 타깃 변수로 사용됨

  4. 수치적 해석 불가: 숫자로 변환하더라도 그 값은 단지 식별자일 뿐, 계산이나 비교에 사용될 수 없음
    예: 남성=0, 여성=1 → 1 > 0 이지만, 여성 > 남성이라는 의미는 아님


명목형 범주와 순서형 범주의 차이

구분 명목형 범주 (Nominal) 순서형 범주 (Ordinal)
순서 존재 여부 없음 있음
예시 색상(빨강, 파랑, 초록), 직업(의사, 교사, 엔지니어) 학력(고졸, 대졸, 석사졸), 만족도(낮음, 보통, 높음)
인코딩 방식 원-핫 인코딩 권장 레이블 인코딩 가능
수치적 해석 불가능 부분적으로 가능 (순서 기준)

🔍 예시 설명:
- 명목형: "자료형"이 '문자열', '정수형', '부동소수점'일 경우, 이들은 서로 다른 이름일 뿐 순서가 없음
- 순서형: "경력 단계"가 '주니어', '미들', '시니어'일 경우, 명확한 순서 존재


명목형 범주의 인코딩 방법

머신러닝 모델은 일반적으로 숫자 형태의 입력만 처리할 수 있으므로, 명목형 범주는 반드시 인코딩 과정을 거쳐야 합니다. 주요 인코딩 방법은 다음과 같습니다.

1. 원-핫 인코딩 (One-Hot Encoding)

각 범주를 독립된 이진 변수(0 또는 1)로 변환합니다. 범주의 수만큼 새로운 열이 생성됩니다.

import pandas as pd

data = pd.DataFrame({'color': ['red', 'blue', 'green', 'red']})
encoded = pd.get_dummies(data, columns=['color'])

결과: | color_blue | color_green | color_red | |------------|-------------|-----------| | 1 | 0 | 0 | | 0 | 0 | 1 | | 0 | 1 | 0 | | 0 | 0 | 1 |

  • ✅ 장점: 범주 간 인위적인 순서를 만들지 않음
  • ❌ 단점: 범주 수가 많을 경우 차원 증가 (차원의 저주)

💡 참고: 고차원 데이터에서는 임베딩(Embedding) 또는 해시 인코딩(Hashing Trick)을 활용하기도 함.

2. 레이블 인코딩 (Label Encoding)

각 범주에 고유한 정수 값을 부여합니다.

from sklearn.preprocessing import LabelEncoder

le = LabelEncoder()
data['color_encoded'] = le.fit_transform(data['color'])

결과: | color | color_encoded | |---------|---------------| | red | 2 | | blue | 0 | | green | 1 | | red | 2 |

  • ⚠️ 주의: 명목형 범주에 사용 시 모델이 인위적인 순서(0 < 1 < 2)를 인식할 수 있음 → 잘못된 학습 유도 가능성

🔧 사용 권장 상황: 트리 기반 모델(예: Random Forest, XGBoost)은 레이블 인코딩에 덜 민감할 수 있음

3. 타깃 인코딩 (Target Encoding)

범주별로 타깃 변수의 평균(또는 기타 통계량)을 사용하여 인코딩합니다. 주로 회귀 또는 분류 태스크에서 유용합니다.

예: 이탈 예측 모델에서 지역별 평균 이탈률로 인코딩

  • ✅ 장점: 범주와 타깃 간의 관계를 반영
  • ❌ 단점: 데이터 누수(Leakage) 및 과적합 위험 → 교차 검증 기반 평균 사용 권장

실무 팁

  • 범주 수가 적을 때(예: 3~10개): 원-핫 인코딩 권장
  • 범주 수가 많을 때(예: >100): 임베딩, 해시 인코딩, 타깃 인코딩 고려
  • 고유값이 너무 많을 경우(예: 사용자 ID): 일반적으로 드롭하거나 군집화 후 인코딩
  • 결측치 처리: NaN도 하나의 범주로 처리하거나 별도 인코딩 필요

관련 개념

  • 범주형 변수(Categorical Variable): 명목형과 순서형을 포함한 상위 개념
  • 더미 변수(Dummy Variable): 원-핫 인코딩 결과로 생성된 이진 변수
  • 인코딩(Encoding): 범주형 데이터를 수치형으로 변환하는 과정
  • 차원의 저주(Curse of Dimensionality): 원-핫 인코딩 시 발생할 수 있는 문제

참고 자료

📚 추천 학습 경로:
1. 범주형 데이터 이해 → 2. 인코딩 기법 비교 → 3. 실제 데이터셋 적용 → 4. 모델 성능 평가

AI 생성 콘텐츠 안내

이 문서는 AI 모델(qwen-3-235b-a22b-instruct-2507)에 의해 생성된 콘텐츠입니다.

주의사항: AI가 생성한 내용은 부정확하거나 편향된 정보를 포함할 수 있습니다. 중요한 결정을 내리기 전에 반드시 신뢰할 수 있는 출처를 통해 정보를 확인하시기 바랍니다.

이 AI 생성 콘텐츠가 도움이 되었나요?